home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD006b.dsk / ARTP.bas < prev    next >
BASIC Source File  |  2003-06-12  |  6KB  |  161 lines

  1. 1  REM  COPYRIGHT 1981 - UNIV. OF SCRANTON - COMPUTER SCIENCE
  2. 2  REM  UN-REM LINE 805 TO KEEP THE COMPUTER FROM LEARNING NEW WORDS
  3. 4  VTAB 23
  4. 5  DIM WA(8),TR(8),AB(26),LG(26),CG(9)
  5. 6 Q = 1:CP = 0:I = 0:D$ = "<CTRL-D>"
  6. 7  GOSUB 10000: HCOLOR= 3
  7. 8  INPUT "ENTER WORD SIZE (5 TO 8) ";ML: IF ML <5  OR ML >8  THEN  GOTO 8
  8. 10  SCALE= 1: ROT= 0:ML = ML -1
  9. 11  IF ML = 4  THEN F$ = "LT5":BY = 15: GOTO 15
  10. 12  IF ML = 5  THEN F$ = "LT6":BY = 18: GOTO 15
  11. 13  IF ML = 6  THEN F$ = "LT7":BY = 21: GOTO 15
  12. 14  IF ML = 7  THEN F$ = "LT8":BY = 24
  13. 15  PRINT "DO YOU WISH TO PLAY AGAINST THE COMPUTER? (Y/N) ": GET A$: PRINT A$:CP = 1: IF A$ < >"Y"  THEN CP = 2
  14. 17  IF CP = 1  THEN  PRINT D$;"OPEN FREQS,L78": PRINT D$;"READ FREQS,R0": FOR CI = 0 TO 25: INPUT LG(CI): NEXT CI: PRINT D$;"CLOSE"
  15. 20  HGR :P1 = 0:P2 = 0:TC =  -1
  16. 90  GOSUB 680
  17. 91  DRAW 26 AT 0,10: DRAW 22 AT 10,10: DRAW 11 AT 20,10: DRAW 35 AT 30,10: DRAW 15 AT 40,10: DRAW 28 AT 50,10: DRAW 2 AT 60,10
  18. 92  IF CP = 1  THEN  DRAW 28 AT 269,10: DRAW 15 AT 259,10: DRAW 30 AT 249,10: DRAW 31 AT 239,10: DRAW 26 AT 229,10: DRAW 23 AT 219,10: DRAW 25 AT 209,10: DRAW 13 AT 199,10: GOTO 99
  19. 93  DRAW 3 AT 269,10: DRAW 28 AT 259,10: DRAW 15 AT 249,10: DRAW 35 AT 239,10: DRAW 11 AT 229,10: DRAW 22 AT 219,10: DRAW 26 AT 209,10
  20. 99  FOR I = 0 TO ML: HPLOT I *25,143 TO I *25 +7,143: NEXT I
  21. 100  FOR I = 11 TO 36
  22. 110  DRAW I AT (I -11) *10,159: NEXT I
  23. 112 WL = 0
  24. 113  HOME 
  25. 115  GOSUB 690
  26. 124  IF CP = 1  AND Q = 1  THEN  GOSUB 900: GOTO 195
  27. 128  VTAB 22: PRINT "ENTER YOUR WORD"
  28. 129 I = 0
  29. 130  GET A$:XP = 10 *( ASC(A$) - ASC("A"))
  30. 132  PRINT A$;
  31. 135  IF XP >250  THEN 130
  32. 145  POKE 6,20: POKE 7,255: CALL 768
  33. 160 WA(I) = XP/10 +11: DRAW WA(I) AT I *25,140
  34. 170 I = I +1
  35. 190  IF I < = ML  THEN  GOTO 130
  36. 192  PRINT 
  37. 195  GOSUB 690
  38. 200  FOR I = 0 TO ML
  39. 210 TR(I) = 0
  40. 220  NEXT I
  41. 300 WG = 0:LL = ML +1: FOR I = 0 TO 25:AB(I) = 0: NEXT I
  42. 301  VTAB 21: PRINT "SELECT LETTERS USING THE KEYBOARD"
  43. 302  PRINT 
  44. 305  IF CP = 1  AND Q = 2  THEN  PRINT D$;"OPEN ";F$;",L";BY: PRINT D$;"READ ";F$;",R0": INPUT RN: PRINT D$;"CLOSE":CI =  -1:DR = 0:RE = 0
  45. 307  IF CP = 1  AND Q = 2  THEN  GOSUB 3500: GOTO 340
  46. 310  GET A$:XP = 10 *( ASC(A$) - ASC("A"))
  47. 311  PRINT A$;: IF (A$ <"A")  OR (A$ >"Z")  THEN 310
  48. 312  IF XP >250  THEN 310
  49. 315  IF AB(XP/10) < >0  THEN  GOTO 310
  50. 340  HCOLOR= 0: DRAW 37 AT XP,159: HCOLOR= 3
  51. 350  GOSUB 600
  52. 352  IF FL = 0  THEN AB(XP/10) = 1: GOTO 355
  53. 353 AB(XP/10) = 2
  54. 355  IF LL = 0  THEN 375
  55. 360  IF WG <9  THEN  GOTO 307
  56. 370 Q = 3 -Q
  57. 372  FOR I = 0 TO ML: DRAW WA(I) AT I *25,140: NEXT I
  58. 375  GOSUB 3000
  59. 380  IF Q = 2  THEN  GOTO 400
  60. 390 P1 = P1 +1: HCOLOR= 0: DRAW 37 AT 30,23: HCOLOR= 3: DRAW P1 +1 AT 30,23: IF P1 = 9  THEN  GOTO 2700
  61. 395  GOTO 420
  62. 400 P2 = P2 +1: HCOLOR= 0: DRAW 37 AT 239,23: HCOLOR= 3: DRAW P2 +1 AT 239,23: IF P2 = 9  THEN  GOTO 2700
  63. 420  IF WG <9  THEN Q = 3 -Q
  64. 425  IF CP = 1  AND Q = 2  THEN  GOTO 430
  65. 427  GOSUB 700
  66. 430  GOTO 100
  67. 600 FL = 0
  68. 605  FOR I = 0 TO ML
  69. 610  IF WA(I) < >XP/10 +11  THEN  GOTO 630
  70. 620 LL = LL -1:FL = 1: POKE 6,20: POKE 7,255: CALL 768: DRAW WA(I) AT I *25,140
  71. 625  IF CP = 1  THEN DR = 1:TR(I) = XP/10 +11
  72. 630  NEXT I
  73. 640  IF FL = 1  THEN  GOTO 660
  74. 650 WG = WG +1: POKE 6,100: POKE 7,255: CALL 768: GOSUB 1000
  75. 660  RETURN 
  76. 680  HCOLOR= 0: DRAW 37 AT 30,23: DRAW 37 AT 239,23: HCOLOR= 3: DRAW 1 AT 30,23: DRAW 1 AT 239,23
  77. 690  HCOLOR= 0: FOR I = 0 TO ML: DRAW 37 AT I *25,140: NEXT I: HCOLOR= 3: RETURN 
  78. 700  PRINT D$;"OPEN ";F$;",L";BY
  79. 710 RE = 0
  80. 720  PRINT D$;"READ ";F$;",R";RE
  81. 730  INPUT RN
  82. 740  FOR TT = 1 TO RN
  83. 750  PRINT D$;"READ ";F$;",R";TT
  84. 760  FOR T2 = 0 TO ML
  85. 770  INPUT TR(T2): IF TR(T2) < >WA(T2)  THEN  GOTO 800
  86. 780  NEXT T2
  87. 790  GOTO 860
  88. 800  NEXT TT
  89. 805  REM  GOTO 860:REM UN REM THIS LINE IF YOU DON'T WANT THE COMPUTER TO LEARN NEW WORDS
  90. 810 RN = RN +1
  91. 820  PRINT D$;"WRITE ";F$;",R";RE
  92. 830  PRINT RN
  93. 840  PRINT D$;"WRITE ";F$;",R";RN
  94. 850  FOR TT = 0 TO ML: PRINT WA(TT): NEXT TT
  95. 860  PRINT D$;"CLOSE"
  96. 899  RETURN 
  97. 900  PRINT D$;"OPEN ";F$;",L";BY
  98. 910 RE = 0
  99. 920  PRINT D$;"READ ";F$;",R";RE
  100. 930  INPUT RN
  101. 940 RE =  RND(1) *(RN -1):RE =  INT(RE) +1
  102. 945  GOSUB 1500
  103. 950  PRINT D$;"READ ";F$;",R";RE
  104. 960  FOR TT = 0 TO ML: INPUT WA(TT): NEXT TT
  105. 970  PRINT D$;"CLOSE"
  106. 999  RETURN 
  107. 1000  POKE 232,0: POKE 233,86
  108. 1010  IF WG = 1  THEN  DRAW WG AT 120,16: GOTO 1100
  109. 1020  IF WG = 2  THEN  DRAW WG AT 115,39: GOTO 1100
  110. 1030  IF WG = 3  THEN  DRAW WG AT 90,42: GOTO 1100
  111. 1040  IF WG = 4  THEN  DRAW 4 AT 148,40: GOTO 1100
  112. 1050  IF WG = 5  THEN  DRAW WG AT 113,75: GOTO 1100
  113. 1060  IF WG = 6  THEN  DRAW WG AT 143,75: GOTO 1100
  114. 1070  IF WG = 7  THEN  DRAW WG AT 100,112: GOTO 1100
  115. 1080  IF WG = 8  THEN  DRAW WG AT 174,10: GOTO 1100
  116. 1090  IF WG = 9  THEN  DRAW WG AT 102,10: POKE 6,200: POKE 7,160: CALL 768: CALL 768: POKE 6,160: POKE 7,255: CALL 768
  117. 1100  POKE 232,0: POKE 233,64
  118. 1200  RETURN 
  119. 1500  IF TC =  -1  THEN TC = 0:CG(TC) = RE: GOTO 2000
  120. 1510  FOR TT = 0 TO TC
  121. 1520  IF CG(TT) = RE  THEN  GOTO 940
  122. 1530  NEXT TT
  123. 1540 TC = TC +1:CG(TT) = RE
  124. 2000  RETURN 
  125. 2700  PRINT "TO STOP-ENTER A 0"
  126. 2701  PRINT "TO RESTART WITH NEW LETTER SIZE-ENTER A 1"
  127. 2702  INPUT "TO RESTART WITH SAME SIZE-ENTER A 2 ";DR
  128. 2710  IF DR = 0  THEN  GOTO 2799
  129. 2720  IF DR = 1  THEN  GOTO 8
  130. 2730  GOTO 20
  131. 2799  END 
  132. 3000  HCOLOR= 0
  133. 3005  FOR I1 = 85 TO 180  STEP 7
  134. 3009  POKE 6,I1: POKE 7,80: CALL 768
  135. 3010  FOR I2 = 5 TO 125  STEP 7
  136. 3020  DRAW 37 AT I1,I2
  137. 3030  NEXT I2
  138. 3040  NEXT I1
  139. 3050  HCOLOR= 3: RETURN 
  140. 3500  IF CI >4  THEN  GOTO 3530
  141. 3510 CI = CI +1
  142. 3520 XP = (LG(CI) -11) *10: GOTO 3680
  143. 3530  IF DR < >1  THEN  GOTO 3510
  144. 3540  PRINT D$;"OPEN ";F$;",L";BY
  145. 3550 RE = RE +1:TT =  -1
  146. 3560  IF RE >RN  THEN  GOTO 3630
  147. 3570  PRINT D$;"READ ";F$;",R";RE
  148. 3580  INPUT XP:TT = TT +1: IF AB(XP -11) = 1  OR (TR(TT) < >0  AND TR(TT) < >XP)  THEN  GOTO 3550
  149. 3585  IF TT <ML  THEN  GOTO 3580
  150. 3590  PRINT D$;"READ ";F$;",R";RE:TT =  -1
  151. 3600  INPUT XP:TT = TT +1
  152. 3610  IF TR(TT) = 0  THEN XP = (XP -11) *10:RE = RE -1: GOTO 3680
  153. 3620  GOTO 3600
  154. 3630 CI = CI +1
  155. 3670 XP = (LG(CI) -11) *10
  156. 3680  IF AB(XP/10) < >0  THEN  GOTO 3500
  157. 3699  RETURN 
  158. 10000  REM  SOUND ROUTINE
  159. 10010  POKE 768,173: POKE 769,48: POKE 770,192: POKE 771,136: POKE 772,208: POKE 773,4: POKE 774,198: POKE 775,7: POKE 776,240: POKE 777,8
  160. 10020  POKE 778,202: POKE 779,208: POKE 780,246: POKE 781,166: POKE 782,6: POKE 783,76: POKE 784,0: POKE 785,3: POKE 786,96
  161. 10040  RETURN